
USE MASTER
GO

IF EXISTS(SELECT * FROM SYSDATABASES WHERE NAME='BD_TUNKIWEB_MATRICULA')
    BEGIN
	DROP DATABASE [BD_TUNKIWEB_MATRICULA]
    END
GO

CREATE DATABASE [BD_TUNKIWEB_MATRICULA]
GO

USE [BD_TUNKIWEB_MATRICULA]
GO

CREATE TABLE OPCION_RESPUESTA (
	COD_OPCRESPUESTA CHAR ( 5 ) NOT NULL,
	COD_PREGUNTA CHAR ( 5 ),
	DES_OPCRESPUESTA VARCHAR ( 50 ) NOT NULL,
	CONSTRAINT PK_OPCION_RESPUESTA56 PRIMARY KEY NONCLUSTERED (COD_OPCRESPUESTA)
	)

GO
CREATE TABLE PREGUNTA (
	COD_PREGUNTA CHAR ( 5 ) NOT NULL,
	COD_ENCUESTA CHAR ( 5 ) NOT NULL,
	DES_PREGUNTA VARCHAR ( 50 ) NOT NULL,
	TIP_PREGUNTA SMALLINT NOT NULL,
	CONSTRAINT PK_PREGUNTA55 PRIMARY KEY NONCLUSTERED (COD_PREGUNTA)
	)
GO
CREATE TABLE ASISTENCIA (
	COD_CLASE CHAR ( 5 ) NOT NULL,
	COD_SOCIO CHAR ( 5 ),
	ESTADO VARCHAR ( 20 ) NOT NULL
	)
GO
CREATE TABLE INFRAESTRUCTURA (
	COD_INFRAESTRUCTURA CHAR ( 5 ) NOT NULL,
	NOM_INFRAESTRUCTURA VARCHAR ( 50 ) NOT NULL,
	DES_INFRAESTRUCTURA VARCHAR ( 50 ) NOT NULL,
	UBI_INFRAESTRUCTURA VARCHAR ( 50 ) NOT NULL,
	COD_PADREINFRAESTRUCTURA CHAR ( 5 ) NULL,
	CONSTRAINT PK_INFRAESTRUCTURA51 PRIMARY KEY NONCLUSTERED (COD_INFRAESTRUCTURA)
	)
GO
CREATE TABLE CALIFICACION (
	COD_CALIFICACION CHAR ( 5 ) NOT NULL,
	COD_SECCION CHAR ( 5 ) NOT NULL,
	COD_SOCIO CHAR ( 5 ),
	NOT_CALIFICACION VARCHAR ( 50 ) NOT NULL,
	COMENTARIO VARCHAR ( 255 ),
	CONSTRAINT PK_CALIFICACION62 PRIMARY KEY NONCLUSTERED (COD_CALIFICACION)
	)
GO
CREATE TABLE SOCIO (
	COD_SOCIO CHAR ( 5 ) NOT NULL,
	NOM_SOCIO VARCHAR ( 50 ) NOT NULL,
	ESTADO VARCHAR ( 50 ) NOT NULL,
	CONSTRAINT PK_SOCIO48 PRIMARY KEY NONCLUSTERED (COD_SOCIO)
	)
GO
CREATE TABLE MATRICULA (
	COD_MATRICULA CHAR ( 5 ) NOT NULL,
	COD_PERIODO CHAR ( 5 ) NOT NULL,
	COD_SOCIO CHAR ( 5 ),
	MON_PAGO NUMERIC ( 8, 2 ) NOT NULL,
	CONSTRAINT PK_MATRICULA49 PRIMARY KEY NONCLUSTERED (COD_MATRICULA)
	)
GO
CREATE TABLE ACADEMIA (
	COD_ACADEMIA CHAR ( 5 ) NOT NULL,
	DES_ACADEMIA VARCHAR ( 50 ) NOT NULL,
	ESTADO VARCHAR ( 20 ) NOT NULL,
	CONSTRAINT PK_ACADEMIA50 PRIMARY KEY NONCLUSTERED (COD_ACADEMIA)
	)
GO
CREATE TABLE HORARIO (
	COD_HORARIO CHAR ( 5 ) NOT NULL,
	COD_SECCION CHAR ( 5 ) NOT NULL,
	COD_INFRAESTRUCTURA CHAR ( 5 ) NOT NULL,
	HOR_INICIO DATETIME NOT NULL,
	HOR_FIN DATETIME NOT NULL,
	HORA INT,
	DIA INT,
	ESTADO VARCHAR ( 50 ) NOT NULL,
	CONSTRAINT PK_HORARIO53 PRIMARY KEY NONCLUSTERED (COD_HORARIO)
	)
GO
CREATE TABLE SECCION (
	COD_SECCION CHAR ( 5 ) NOT NULL,
	COD_PLANIFICACION CHAR ( 5 ) NOT NULL,
	COD_INSTRUCTOR CHAR ( 5 ) NOT NULL,
	DES_SECCION VARCHAR ( 50 ) NOT NULL,
	CAP_MAXIMA_SECCION INT,
	CAP_MINIMA_SECCION INT,
	ESTADO VARCHAR ( 50 ) NOT NULL,
	CONSTRAINT PK_SECCION52 PRIMARY KEY NONCLUSTERED (COD_SECCION)
	)
GO
CREATE TABLE PERIODO (
	COD_PERIODO CHAR ( 5 ) NOT NULL,
	DES_PERIODO VARCHAR ( 50 ) NOT NULL,
	FEC_INICIO DATETIME NOT NULL,
	FEC_FIN DATETIME NOT NULL,
	CICLO SMALLINT NOT NULL,
	ESTADO VARCHAR ( 50 ) NOT NULL,
	CONSTRAINT PK_PERIODO57 PRIMARY KEY NONCLUSTERED (COD_PERIODO)
	)
GO
CREATE TABLE CLASES (
	COD_CLASE CHAR ( 5 ) NOT NULL,
	COD_SECCION CHAR ( 5 ) NOT NULL,
	FEC_CLASE DATETIME NOT NULL,
	REC_CLASE VARCHAR ( 100 ) NOT NULL,
	CONSTRAINT PK_CLASES61 PRIMARY KEY NONCLUSTERED (COD_CLASE)
	)
GO
CREATE TABLE ENCUESTA (
	COD_ENCUESTA CHAR ( 5 ) NOT NULL,
	DES_ENCUESTA VARCHAR ( 50 ) NOT NULL,
	FEC_INICIO DATETIME NOT NULL,
	FEC_FIN DATETIME NOT NULL,
	ESTADO SMALLINT NOT NULL,
	CONSTRAINT PK_ENCUESTA54 PRIMARY KEY NONCLUSTERED (COD_ENCUESTA)
	)
GO
CREATE TABLE MATRICULA_SECCION (
	COD_SECCION CHAR ( 5 ) NOT NULL,
	COD_MATRICULA CHAR ( 5 ) NOT NULL,
	FEC_MS DATETIME NOT NULL,
	CONSTRAINT PK_MATRICULA_SECCION65 PRIMARY KEY NONCLUSTERED (COD_SECCION, COD_MATRICULA)
	)
GO
CREATE TABLE RESPUESTA_ENCUESTA (
	COD_RENDIR_ENCUESTA CHAR ( 5 ) NOT NULL,
	COD_ENCUESTA CHAR ( 5 ) NOT NULL,
	COD_PREGUNTA CHAR ( 5 ) NOT NULL,
	RES_ENCUESTA SMALLINT NOT NULL
	)
GO
CREATE TABLE INSTRUCTOR (
	COD_INSTRUCTOR CHAR ( 5 ) NOT NULL,
	NOM_INSTRUCTOR VARCHAR ( 50 ) NOT NULL,
	APE_PAT_INSTRUCTOR VARCHAR ( 50 ) NOT NULL,
	APE_MAT_INSTRUCTOR VARCHAR ( 50 ) NOT NULL,
	TEL_INSTRUCTOR VARCHAR ( 20 ),
	ESP_INSTRUCTOR VARCHAR ( 50 ) NOT NULL,
	CONSTRAINT PK_INSTRUCTOR59 PRIMARY KEY NONCLUSTERED (COD_INSTRUCTOR)
	)
GO
CREATE TABLE RENDIR_ENCUESTA (
	COD_RENDIR_ENCUESTA CHAR ( 5 ) NOT NULL,
	COD_ENCUESTA CHAR ( 5 ) NOT NULL,
	COD_SOCIO CHAR ( 5 ) NOT NULL,
	CONSTRAINT PK_RENDIR_ENCUESTA63 PRIMARY KEY NONCLUSTERED (COD_RENDIR_ENCUESTA)
	)
GO
CREATE TABLE PLANIFICACION (
	COD_PLANIFICACION CHAR ( 5 ) NOT NULL,
	EST_PLANIFICACION VARCHAR ( 50 ) NOT NULL,
	COD_PERIODO CHAR ( 5 ) NOT NULL,
	COD_ACADEMIA CHAR ( 5 ) NOT NULL,
	CONSTRAINT PK_PLANIFICACION58 PRIMARY KEY NONCLUSTERED (COD_PLANIFICACION)
	)
GO
CREATE TABLE USUARIO (
	COD_USUARIO INT NOT NULL,
	NOM_USUARIO VARCHAR ( 50 ) NOT NULL,
	LOG_USUARIO VARCHAR ( 20 ) NOT NULL,
	PWD_USUARIO VARCHAR ( 20 ) NOT NULL,
	TIP_USUARIO VARCHAR ( 20 ) NOT NULL,
	COD_SOCIO CHAR ( 5 ),
	CONSTRAINT PK_USUARIO60 PRIMARY KEY NONCLUSTERED (COD_USUARIO)
	)
GO
ALTER TABLE USUARIO ADD CONSTRAINT FK_USUARIO65 FOREIGN KEY (COD_SOCIO) REFERENCES SOCIO (COD_SOCIO) 
GO
ALTER TABLE MATRICULA_SECCION ADD CONSTRAINT FK_MATRICULA_SECCION71 FOREIGN KEY (COD_SECCION) REFERENCES SECCION (COD_SECCION) 
GO
ALTER TABLE MATRICULA_SECCION ADD CONSTRAINT FK_MATRICULA_SECCION72 FOREIGN KEY (COD_MATRICULA) REFERENCES MATRICULA (COD_MATRICULA) 
GO
ALTER TABLE CALIFICACION ADD CONSTRAINT FK_CALIFICACION75 FOREIGN KEY (COD_SECCION) REFERENCES SECCION (COD_SECCION) 
GO
ALTER TABLE CALIFICACION ADD CONSTRAINT FK_CALIFICACION67 FOREIGN KEY (COD_SOCIO) REFERENCES SOCIO (COD_SOCIO) 
GO
ALTER TABLE ASISTENCIA ADD CONSTRAINT FK_ASISTENCIA85 FOREIGN KEY (COD_CLASE) REFERENCES CLASES (COD_CLASE) 
GO
ALTER TABLE ASISTENCIA ADD CONSTRAINT FK_ASISTENCIA66 FOREIGN KEY (COD_SOCIO) REFERENCES SOCIO (COD_SOCIO) 
GO
ALTER TABLE INFRAESTRUCTURA ADD CONSTRAINT FK_INFRAESTRUCTURA69 FOREIGN KEY (COD_PADREINFRAESTRUCTURA) REFERENCES INFRAESTRUCTURA (COD_INFRAESTRUCTURA) 
GO
ALTER TABLE PLANIFICACION ADD CONSTRAINT FK_PLANIFICACION68 FOREIGN KEY (COD_ACADEMIA) REFERENCES ACADEMIA (COD_ACADEMIA) 
GO
ALTER TABLE PLANIFICACION ADD CONSTRAINT FK_PLANIFICACION82 FOREIGN KEY (COD_PERIODO) REFERENCES PERIODO (COD_PERIODO) 
GO
ALTER TABLE MATRICULA ADD CONSTRAINT FK_MATRICULA81 FOREIGN KEY (COD_PERIODO) REFERENCES PERIODO (COD_PERIODO) 
GO
ALTER TABLE MATRICULA ADD CONSTRAINT FK_MATRICULA64 FOREIGN KEY (COD_SOCIO) REFERENCES SOCIO (COD_SOCIO) 
GO
ALTER TABLE CLASES ADD CONSTRAINT FK_CLASES74 FOREIGN KEY (COD_SECCION) REFERENCES SECCION (COD_SECCION) 
GO
ALTER TABLE OPCION_RESPUESTA ADD CONSTRAINT FK_OPCION_RESPUESTA78 FOREIGN KEY (COD_PREGUNTA) REFERENCES PREGUNTA (COD_PREGUNTA) 
GO
ALTER TABLE SECCION ADD CONSTRAINT FK_SECCION83 FOREIGN KEY (COD_PLANIFICACION) REFERENCES PLANIFICACION (COD_PLANIFICACION) 
GO
ALTER TABLE SECCION ADD CONSTRAINT FK_SECCION84 FOREIGN KEY (COD_INSTRUCTOR) REFERENCES INSTRUCTOR (COD_INSTRUCTOR) 
GO
ALTER TABLE RESPUESTA_ENCUESTA ADD CONSTRAINT FK_RESPUESTA_ENCUESTA79 FOREIGN KEY (COD_RENDIR_ENCUESTA) REFERENCES RENDIR_ENCUESTA (COD_RENDIR_ENCUESTA) 
GO
ALTER TABLE RESPUESTA_ENCUESTA ADD CONSTRAINT FK_RESPUESTA_ENCUESTA155 FOREIGN KEY (COD_PREGUNTA) REFERENCES PREGUNTA (COD_PREGUNTA) 
GO
ALTER TABLE RESPUESTA_ENCUESTA ADD CONSTRAINT FK_RESPUESTA_ENCUESTA154 FOREIGN KEY (COD_ENCUESTA) REFERENCES ENCUESTA (COD_ENCUESTA) 
GO
ALTER TABLE HORARIO ADD CONSTRAINT FK_HORARIO73 FOREIGN KEY (COD_SECCION) REFERENCES SECCION (COD_SECCION) 
GO
ALTER TABLE HORARIO ADD CONSTRAINT FK_HORARIO70 FOREIGN KEY (COD_INFRAESTRUCTURA) REFERENCES INFRAESTRUCTURA (COD_INFRAESTRUCTURA) 
GO
ALTER TABLE RENDIR_ENCUESTA ADD CONSTRAINT FK_RENDIR_ENCUESTA77 FOREIGN KEY (COD_ENCUESTA) REFERENCES ENCUESTA (COD_ENCUESTA) 
GO
ALTER TABLE RENDIR_ENCUESTA ADD CONSTRAINT FK_RENDIR_ENCUESTA157 FOREIGN KEY (COD_SOCIO) REFERENCES SOCIO (COD_SOCIO) 
GO
ALTER TABLE PREGUNTA ADD CONSTRAINT FK_PREGUNTA76 FOREIGN KEY (COD_ENCUESTA) REFERENCES ENCUESTA (COD_ENCUESTA) 
GO


